import Rules from './Rules';

const { COMMON_RULE, LENGTH_RULE, FLOAT_NUMBER_RULE } = Rules;
const NUMBER_COMMON_RULE = COMMON_RULE({ type: 'number' });

// 课程非精编
export const courseRule = {
  // 名称
  title: COMMON_RULE().concat(LENGTH_RULE(1, 100)),
  // 封面
  cover: COMMON_RULE(),
  // 简介
  summary: COMMON_RULE().concat(LENGTH_RULE(1, 30)),
  // 章节
  chapters: COMMON_RULE({
    type: 'array',
    defaultField: COMMON_RULE({
      type: 'object',
      fields: {
        title: COMMON_RULE(),
      },
    }),
  }),
  // 课程介绍
  intro: COMMON_RULE(),
  // 移动端课程介绍
  // appIntro: COMMON_RULE(),
  // 评分
  score: NUMBER_COMMON_RULE.concat(FLOAT_NUMBER_RULE(1)),
  // 等级
  level: NUMBER_COMMON_RULE,
  // 分类
  categoryId: NUMBER_COMMON_RULE,
  // 讲师
  uuids: COMMON_RULE(),
};

// 视频非精编
export const videoRule = {
  // 名称
  title: COMMON_RULE().concat(LENGTH_RULE(1, 100)),
  // 封面
  cover: COMMON_RULE(),
  // 简介
  summary: COMMON_RULE().concat(LENGTH_RULE(1, 30)),
  // 章节
  chapters: COMMON_RULE({
    type: 'array',
    defaultField: COMMON_RULE({
      type: 'object',
      fields: {
        title: COMMON_RULE(),
      },
    }),
  }),
  // 评分
  score: NUMBER_COMMON_RULE.concat(FLOAT_NUMBER_RULE(1)),
  // 等级
  level: NUMBER_COMMON_RULE,
  // 讲师
  uuids: COMMON_RULE(),
};

// 精编规则 合集
export const courseWholeRule = {
  ...courseRule,
  // delicated: NUMBER_COMMON_RULE,
  // preview: NUMBER_COMMON_RULE,
  tags: COMMON_RULE({ type: 'array' }),
  payMode: NUMBER_COMMON_RULE,
  payPrice: NUMBER_COMMON_RULE.concat(FLOAT_NUMBER_RULE(2)),
  showPrice: NUMBER_COMMON_RULE.concat(FLOAT_NUMBER_RULE(2)),
  online: NUMBER_COMMON_RULE,
};

// 精编规则 视频
export const videoWholeRule = {
  ...videoRule,
  // delicated: NUMBER_COMMON_RULE,
  // preview: NUMBER_COMMON_RULE,
  tags: COMMON_RULE({ type: 'array' }),
  online: NUMBER_COMMON_RULE,
};
